import 'package:equatable/equatable.dart';
import 'note.dart';

/// 笔记创建请求实体类
class NoteCreateRequest extends Equatable {
  final int? projectId;
  final int? todoId;
  final String title;
  final String content;
  final NoteType noteType;
  final List<String> tags;
  final int authorId;
  final bool isPublic;

  const NoteCreateRequest({
    this.projectId,
    this.todoId,
    required this.title,
    required this.content,
    this.noteType = NoteType.general,
    required this.tags,
    required this.authorId,
    this.isPublic = false,
  });

  @override
  List<Object?> get props => [
        projectId,
        todoId,
        title,
        content,
        noteType,
        tags,
        authorId,
        isPublic,
      ];
}

/// 笔记更新请求实体类
class NoteUpdateRequest extends Equatable {
  final String? title;
  final String? content;
  final NoteType? noteType;
  final List<String>? tags;
  final bool? isPublic;

  const NoteUpdateRequest({
    this.title,
    this.content,
    this.noteType,
    this.tags,
    this.isPublic,
  });

  @override
  List<Object?> get props => [
        title,
        content,
        noteType,
        tags,
        isPublic,
      ];
}